The Internet is a decentralized network of computers that can communicate with one another via the TCP/IP (transmission control protocol/internet protocol) network protocol. Although the Internet has its origins in an agency started by the United States Department of Defense in the late 1960's called the U.S. Advanced Research Project Agency (ARPANET), it has only recently become a worldwide communication medium. To a large extent, the explosive growth in use and traffic over the Internet is due to the development in the early 1990's of the worldwide web (WWW), which is one of several service facilities provided on top of the Internet. Other facilities include a variety of communication services such as electronic mail, telnet, usenet newsgroups, internet relay chat (IRC), a variety of information search services such as WAIS and Archie, and a variety of information retrieval services such as FTP (file transfer protocol) and Gopher. While these facilities have serviced the research-oriented user well, the multimedia capability of the WWW has brought the Internet into prominence.
The WWW is a client-server based facility that includes a number of servers (e.g., computers connected to the Internet) on which web pages or files reside and clients (e.g., web browsers) which interface the users with the web pages. Specifically, web browsers and software applications such as WebExplorer.RTM. (IBM Corporation) or Navigator.RTM. (Netscape Communication Corporation) send a request over the WWW to a server requesting a web page identified by a universal resource locator (URL) which notes both the server where the web page resides and the file or files on that server which comprise the web page. The server then sends a copy of the requested file(s) to the web browser which displays the web page to the user. The web pages on the WWW may be hyper-media documents written in a standardized language called hypertext markup language (HTML). Thus, a typical web page includes text together with embedded formatting commands, referred to a tags, which can be used to control the font size, the font style (for example, whether italic or bold), how to weigh up the text, and so on. A web browser parses the HTML script in order to display the text in accordance with the specified format. In addition, an HTML page can also contain a reference, in terms of another URL, to a piece of multimedia data, for example, an image, a video segment, or an audio file. The web browser responds to such a reference by retrieving and displaying or playing the data. Alternatively, such multimedia data may form its own web page, without any surrounding HTML text. Further information about HTML and the WWW can be found in World Wide Web and HTML by Douglas MacArthur, pp. 18-26 and Dr. Dobbs' Journal, December 1994, and in The HTML Sourcebook by Ian Graham, John Wiley Publishers, New York (1995).
Out of an effort to heighten the sensory experience of the WWW, virtual reality modeling language (VRML, pronounced "VER-MEL") was developed. VRML is a standardized language for describing animation and three dimensional modeling of geometric objects. VRML allows a three dimensional scene or world(s) to be manipulated in an interactive manner over the Internet or locally. In either case VRML allows for the creation of virtual environments which may be shared by multiple users. Thus, unlike HTML which provides for relaying and formatting text and images, and for hyperlinks to other web pages, VRML provides for the organization of three dimensional objects and scenes in a hierarchical fashion that may be truly interactive.
A VRML virtual world may include any number of three dimensional objects. A VRML virtual environment may also contain animations are three dimensional animation geometry and movement associated with the animation geometry. The animation may carry out its movement without further user intervention once the animation has been started. Animations may be started by any number of user inputs or may be continuously played to the user.
A VRML browser is used to view a three dimensional world or virtual environment. The VRML browser may be a helper program or plug-in to a web browser that is launched when the web browser detects that the file being downloaded is a VRML document. The VRML browser provides means for allowing the user to move around or navigate the three dimensional virtual world. Typical navigation controls for a VRML browser include walk, spin, look, slide, and point. As well known in the art, the walk control allows the user to move forward and backward within a world, the spin control allows the user to turn in an arcuate fashion, the look control allows the user to zoom in on a particular area or pan out, the slide control allows the user to move sideways in an arcuate fashion, and the point control allows the user to return to an initial vantage point.
In addition to navigating through a VRML world, a user (client) may share a world with one or more other users. In this context, a user selects a three dimensional representation of themselves known as an "avatar" which is an object or group of objects. The avatar then navigates in its world with other avatars that represent other clients (e.g., other VRML browsers). Thus, as a user's avatar moves through the world, the user is able to see other users' avatars moving as well, and vice versa. The navigation controls utilized in conjunction with an avatar are typically the same as those described above.
The positions of a user or a user's avatar within a VRML world are tracked by a matrix-based central object server. Thus, as the position or behavior of an avatar changes, the changes are detected by a server and rebroadcast out to the other browsers. As is known in the industry, the current navigational controls typically allow for movement of the avatar with 6.degree. of freedom. Particularly, current navigational controls allow the user to traverse the world in the direction of the x, y, or z axis.
One problem with virtual environments occurs in the use of animations in the virtual environment. Because a user may view a three dimensional animation from any number of points of view the animation should be oriented to the viewpoint of the user to reduce anomalous appearance in the virtual environment. Utilizing traditional animation methods orienting an animation to all the possible user points of view may require a copy oriented to a specific viewpoint of the animation for each possible viewpoint. If the animation and the user's viewpoint are not properly oriented then anomalous views may result which reduce the realism of the virtual environment. For example, in a virtual environment where a bartender serves drinks to users, if the point of view of the user is not properly oriented with the animation of the bartender then the bartender may serve a drink to a location in the virtual environment other than the users. Thus, the bartender could hand a drink to empty space or a location on a virtual bar other than the users. However, replication of animations to solve such anomalous behavior may be impractical as a result of the amount of programming time required to create such animations or the amount of information required to store or transfer numerous animations.
One method of overcoming the limitations of a fixed point of view animation is to limit the locations in the virtual environment where the animation may be played. Thus, in the bartender example, the bartender could be limited to only serving drinks to users who were located in the virtual environment in an orientation which was aligned with the bartender animation. This constraint on which an animation can be played would tend to assume that the user viewpoint and the animation were properly oriented. Such a solution may prevent the anomalous views which may result from use of a mis-oriented animation but also places constraints on the virtual environment which may reduce the realism and flexibility of a virtual environment.
In view of the above discussion, there exists a need for improvement in creation and presentation of animations in virtual environments.